package com.gem.day09;

import java.util.Arrays;

/**
 * 本类用来演示java.lang.String常用方法
 * 
 * @author easonsy
 * 2020年7月28日 下午4:05:30
 */
public class StringDemo2 {
	public static void main(String[] args) {
		/**
		 * 1.通过下标获取指定字符
		 * 字符串的本质是字符数组,所以也有下标概念,访问时下标如果超过指定范围,
		 * 则抛出异常:java.lang.StringIndexOutOfBoundsException
		 */
		System.out.println("abc".charAt(0));

		/**
		 * 2.比较字符串
		 * 注意:正零负区分大等小
		 */
		System.out.println("abc".compareTo("def"));

		/**
		 * 3.判断字符串中是否包含指定内容
		 */
		System.out.println("你好,我是Java程序员".contains("Java"));

		/**
		 * 4.判断字符串是否以指定内容开头或者结尾
		 */
		System.out.println("我的歌声里.mp3".endsWith("mp3"));
		System.out.println("我的歌声里.mp3".startsWith("我的"));

		/**
		 * 5.比较相等[忽略大小写]
		 */
		System.out.println("abc".equals("ABC"));
		System.out.println("abc".equalsIgnoreCase("ABC"));

		/**
		 * 6.获取字节数组
		 */
		byte[] bytes = "你好,我是Java程序员".getBytes();
		System.out.println(Arrays.toString(bytes));

		/**
		 * 7.获取字符串中首次出现或者最后一次出现的字符对应的下标
		 */
		//System.out.println("你好,我是Java程序员".indexOf("a"));
		System.out.println("你好,我是Java程序员".indexOf("a", 7));
		System.out.println("你好,我是Java程序员".lastIndexOf("a"));

		/**
		 * 8.以指定的分隔符连接多个字符串
		 */
		System.out.println(String.join("-", "abc", "def", "ghi", "klm"));

		/**
		 * 9.获取字符串长度
		 */
		System.out.println("你好,我是Java程序员".length());

		/**
		 * 10.重复字符串
		 */
		System.out.println("abc".repeat(5));

		/**
		 * 11.替换
		 */
		System.out.println("你好,我是Java程序员".replace("Java", "Python"));

		/**
		 * 12.切割字符串
		 */
		String[] strArr = "江苏-苏州-工业园区".split("-");
		System.out.println(Arrays.toString(strArr));

		/**
		 * 13.除去字符串前后空白
		 */
		System.out.println("    ab     c        ".trim());

		/**
		 * 14.截取字符串
		 */
		System.out.println("你好,我是Java程序员".substring(3));
		//注意:截取方法是前闭后开区间
		System.out.println("你好,我是Java程序员".substring(3, 9));

		/**
		 * 15.转换字符串数组
		 */
		char[] charArray = "abc".toCharArray();
		System.out.println(charArray);

		/**
		 * 16.转换大小写
		 */
		System.out.println("abc".toUpperCase());
		System.out.println("ABC".toLowerCase());

		/**
		 * 17.把任意类型转换成字符串
		 */
		String result = String.valueOf(123);
		System.out.println(result);

		//补充:把数字转换成字符串
		System.out.println(123 + "");
	}
}
